package com.lsu.app.bean;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;

/**
 * 课程表关联课程id
 * @Date 2023-11-07 18:43:49
 * @author hjj
 */
@Data
@TableName("schedule_course")
@ApiModel(value="ScheduleCourse对象", description="课程表关联课程id")
public class ScheduleCourse implements Serializable {

    @NotNull(message="[]不能为空")
    @ApiModelProperty("")
    private Integer id;

    @NotNull(message="[课程表id]不能为空")
    @ApiModelProperty("课程表id")
    private Integer scheduleId;

    @ApiModelProperty("周几的课程")
    private Integer indexWeek;

    @ApiModelProperty("第几节课")
    private Integer whichNum;

    @ApiModelProperty("课程id")
    private Integer courseId;

    @TableField(exist = false) //该字段不存在于数据库中
    @ApiModelProperty("课程名")
    private String courseName;

    @TableField(exist = false) //该字段不存在于数据库中
    @ApiModelProperty("课程教师昵称")
    private String courseTeacherName;

    @ApiModelProperty("课程开始周次")
    private Integer startWeekly;

    @ApiModelProperty("课程结束周次")
    private Integer endWeekly;

    @ApiModelProperty("状态(1有课,0没课，2非本周课程)")
    private Integer state;

    @ApiModelProperty("备注")
    private String remake;

    @ApiModelProperty("是否为单双周(1单周，2双周，3全周)")
    private Integer skip;

    public ScheduleCourse() {
    }

    //空课程
    public ScheduleCourse(Integer scheduleId, Integer indexWeek, Integer whichNum) {
        this.scheduleId = scheduleId;
        this.indexWeek = indexWeek;
        this.whichNum = whichNum;
    }
    public ScheduleCourse(Integer scheduleId, Integer indexWeek,Integer whichNum,Integer startWeekly,Integer endWeekly) {
        this.scheduleId = scheduleId;
        this.indexWeek = indexWeek;
        this.startWeekly=startWeekly;
        this.endWeekly = endWeekly;
        this.whichNum = whichNum;
    }

    public ScheduleCourse(Integer scheduleId, Integer indexWeek, Integer whichNum, Integer courseId, Integer startWeekly, Integer endWeekly, Integer state, Integer skip) {
        this.scheduleId = scheduleId;
        this.indexWeek = indexWeek;
        this.whichNum = whichNum;
        this.courseId = courseId;
        this.startWeekly = startWeekly;
        this.endWeekly = endWeekly;
        this.state = state;
        this.skip = skip;
    }
}
